package protocol

import "github.com/funny/slab"

type IAllocator interface {
	slab.Pool
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
type NonAllocator struct {
}

func (NonAllocator) Alloc(size int) []byte {
	return make([]byte, size)
}

func (NonAllocator) Free(buffer []byte) {
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
func NewSlabAllocator() IAllocator {
	return slab.NewAtomPool(64, 64*1024, 2, 1024*1024)
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
